Introduction
Use the Lip Sync API to generate a new video where the speaker’s mouth movement is synchronized to a target audio track. Submit a source video URL and an audio URL, then poll the task status until the final result is ready.Key Features
Async Processing
Submit once and retrieve results when processing completes
Simple Input
Create tasks with just a video URL and an audio URL
Flexible Playback
Choose how to handle cases where video is shorter than audio
Result Metadata
Get output video URL, cover image, duration, and error details
Workflow Overview
Lip sync video generation is an asynchronous 3-step process:1
Submit Task
Call the create endpoint with your source video and source audio URLs
2
Processing
JoggAI performs lip sync generation in the background
3
Retrieve Result
Poll the task endpoint until status becomes
success or failedLip sync generation is asynchronous. After submitting the task, store the returned
task_id and use it to poll for progress and results.Quick Start
Related API Endpoints
Key Parameters
Playback Type Values
Pricing
Estimated usage can be calculated from output duration. Since
1 / 125 = 0.008, the displayed unit cost is approximately 0.01 credits per second when rounded up to 2 decimal places.Code Examples
Step 1: Submit Lip Sync Task
Save the
task_id from the response. You will need it to poll the lip sync task result.Step 2: Check Task Status
Status Values
Use Case Examples
Voice replacement workflows
Voice replacement workflows
Reuse an existing talking-head video with a different audio track for updated messaging or campaigns.
Batch content localization
Batch content localization
Generate multiple lip sync tasks for different audio tracks and languages using the same base video.
Tips for Best Results
Playback strategy guidance:- Use
normalwhen video duration already matches the audio well - Use
normal_reversewhen you want a simple loop-like extension effect - Use
normal_reverse_by_audiowhen alignment should adapt to the audio duration
- Start polling a few seconds after task creation
- Poll every 5-10 seconds during active processing
- Stop polling once status is
successorfailed
Troubleshooting
Source URL cannot be fetched
Source URL cannot be fetched
Issue: Task fails because the video or audio file cannot be downloaded.Solutions:
- Ensure both URLs are publicly accessible
- Avoid signed URLs that expire too quickly
- Verify the files are reachable from outside your network
- Confirm the linked file is the actual media file, not an HTML preview page
Task remains processing for too long
Task remains processing for too long
Issue: Status stays
processing longer than expected.Solutions:- Continue polling with a moderate interval
- Retry with smaller or simpler media files if needed
- Verify source media is stable and downloadable
- Contact support if the task remains stuck for an extended period
Related Documentation
Create Lip Sync Video Task
Full request schema for submitting tasks
Get Lip Sync Video Task
Full response schema for task status and result
Check Video Result & Status
General guidance for polling asynchronous video tasks
Webhook Integration
Recommended callback pattern for async workflows

